package com.amumu.drama.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@TableName("oms_order")
public class OmsOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "订单id")
    @TableId(value = "id", type = IdType.AUTO)

    private Long id;

    @ApiModelProperty("用户ID")
    @TableField(value = "member_id")
    private Long memberId;

    @ApiModelProperty("订单编号")
    @TableField(value = "order_sn")
    private String orderSn;

    @ApiModelProperty("提交时间")
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    @ApiModelProperty("用户帐号")
    @TableField(value = "member_username")
    private String memberUsername;

    @ApiModelProperty("游戏账户信息")
    @TableField(value = "feature")
    private String feature;

    @ApiModelProperty("应付金额")
    @TableField(value = "pay_amount")
    private BigDecimal payAmount;

    @ApiModelProperty("邀请码类型0-用户邀请 1-优惠码邀请")
    @TableField(value = "invitation_type")
    private String invitationType;

    @ApiModelProperty("邀请码ID")
    @TableField(value = "invitation_code_id")
    private Long invitationCodeId;

    @ApiModelProperty("邀请码")
    @TableField(value = "invitation_code")
    private String invitationCode;

    @ApiModelProperty("邀请折扣")
    @TableField(value = "invitation_discount")
    private BigDecimal invitationDiscount;

    @ApiModelProperty("邀请优惠金额")
    @TableField(value = "invitation_discount_amount")
    private BigDecimal invitationDiscountAmount;

    @ApiModelProperty("下单时使用的积分")
    @TableField(value = "use_integration")
    private BigDecimal useIntegration;

    @ApiModelProperty("积分抵扣金额（积分支付使用）")
    @TableField(value = "integration_amount")
    private BigDecimal integrationAmount;

    @ApiModelProperty("订单总金额（实付金额）")
    @TableField(value = "total_amount")
    private BigDecimal totalAmount;

    @ApiModelProperty("订单来源：0->未知；1-PC订单；2->app订单")
    @TableField(value = "source_type")
    private Integer sourceType;

    @ApiModelProperty("订单类型：0->接口充值；1->手工充值;2->接口转手工 ;3->手工转接口")
    @TableField(value = "order_type")
    private Integer orderType;

    @ApiModelProperty("订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；")
    @TableField(value = "status")
    private Integer status;

    @ApiModelProperty("支付方式：1->微信支付；2->支付宝支付；4->微丸积分")
    @TableField(value = "pay_type")
    private Integer payType;

    @ApiModelProperty("支付供应商：wepalyer ;wexin ;alipay等")
    @TableField(value = "pay_provider")
    private String payProvider;

    @ApiModelProperty("第三方支付流水号")
    @TableField(value = "pay_order_sn")
    private String payOrderSn;

    @ApiModelProperty("支付状态：0->待支付；1-已支付；2->支付成功；3->支付失败；4-已退款")
    @TableField(value = "pay_status")
    private Integer payStatus;

    @ApiModelProperty("支付时间")
    @TableField(value = "payment_time")
    private LocalDateTime paymentTime;

    @ApiModelProperty("支付确认时间")
    @TableField(value = "payment_confirm_time")
    private LocalDateTime paymentConfirmTime;

    @ApiModelProperty("退款流水号")
    @TableField(value = "refund_sn")
    private String refundSn;

    @ApiModelProperty("退款金额")
    @TableField(value = "refund_amount")
    private BigDecimal refundAmount;

    @ApiModelProperty("退款时间")
    @TableField(value = "refund_time")
    private LocalDateTime refundTime;

    @ApiModelProperty("退款确认时间")
    @TableField(value = "refund_confirm_time")
    private LocalDateTime refundConfirmTime;

    @ApiModelProperty("退款原因")
    @TableField(value = "refund_reason")
    private String refundReason;

    @ApiModelProperty("支付备注")
    @TableField(value = "pay_remark")
    private String payRemark;

    @ApiModelProperty("发货供应商（fulu;taobao）")
    @TableField(value = "delivery_provider")
    private String deliveryProvider;

    @ApiModelProperty("发货状态：0->待发货；1-已发货；2->发货成功；3->发货失败；4-已退货")
    @TableField(value = "delivery_status")
    private Integer deliveryStatus;

    @ApiModelProperty("发货流水号")
    @TableField(value = "delivery_sn")
    private String deliverySn;

    @ApiModelProperty("发货时间")
    @TableField(value = "delivery_time")
    private LocalDateTime deliveryTime;

    @ApiModelProperty("确认收货时间")
    @TableField(value = "receive_time")
    private LocalDateTime receiveTime;

    @ApiModelProperty("退货流水号")
    @TableField(value = "return_sn")
    private String returnSn;

    @ApiModelProperty("退货时间")
    @TableField(value = "return_time")
    private LocalDateTime returnTime;

    @ApiModelProperty("退货确认时间")
    @TableField(value = "return_confirm_time")
    private LocalDateTime returnConfirmTime;

    @ApiModelProperty("退货原因")
    @TableField(value = "return_reason")
    private String returnReason;

    @ApiModelProperty("发货备注")
    @TableField(value = "delivery_remark")
    private String deliveryRemark;

    @ApiModelProperty("订单备注")
    @TableField(value = "note")
    private String note;

    @ApiModelProperty("修改时间")
    @TableField(value = "modify_time")
    private LocalDateTime modifyTime;

    @ApiModelProperty("删除状态：0->未删除；1->已删除")
    @TableField(value = "delete_status")
    private Integer deleteStatus;

    @ApiModelProperty("0-组团ID")
    @TableField(value = "coupon_id")
    private Long couponId;

    @ApiModelProperty("0-管理员后台调整订单使用的折扣金额")
    @TableField(value = "discount_amount")
    private BigDecimal discountAmount;

    @ApiModelProperty("0-运费金额")
    @TableField(value = "freight_amount")
    private BigDecimal freightAmount;

    @ApiModelProperty("0-优惠券抵扣金额")
    @TableField(value = "coupon_amount")
    private BigDecimal couponAmount;

    @ApiModelProperty("0-促销优化金额（促销价、满减、阶梯价）")
    @TableField(value = "promotion_amount")
    private BigDecimal promotionAmount;

    @ApiModelProperty("0-物流公司(配送方式)")
    @TableField(value = "delivery_company")
    private String deliveryCompany;

    @ApiModelProperty("0-自动确认时间（天）")
    @TableField(value = "auto_confirm_day")
    private Integer autoConfirmDay;

    @ApiModelProperty("0-可以获得的积分")
    @TableField(value = "integration")
    private BigDecimal integration;

    @ApiModelProperty("0-可以活动的成长值")
    @TableField(value = "growth")
    private Integer growth;

    @ApiModelProperty("0-活动信息")
    @TableField(value = "promotion_info")
    private String promotionInfo;

    @ApiModelProperty("0-发票类型：0->不开发票；1->电子发票；2->纸质发票")
    @TableField(value = "bill_type")
    private Integer billType;

    @ApiModelProperty("0-发票抬头")
    @TableField(value = "bill_header")
    private String billHeader;

    @ApiModelProperty("0-发票内容")
    private String billContent;

    @ApiModelProperty("0-收票人电话")
    private String billReceiverPhone;

    @ApiModelProperty("0-收票人邮箱")
    private String billReceiverEmail;

    @ApiModelProperty("0-收货人姓名")
    private String receiverName;

    @ApiModelProperty("0-收货人电话")
    private String receiverPhone;

    @ApiModelProperty("0-收货人邮编")
    private String receiverPostCode;

    @ApiModelProperty("0-省份/直辖市")
    private String receiverProvince;

    @ApiModelProperty("0-城市")
    private String receiverCity;

    @ApiModelProperty("0-区")
    private String receiverRegion;

    @ApiModelProperty("0-详细地址")
    private String receiverDetailAddress;

    @ApiModelProperty("0-确认收货状态：0->未确认；1->已确认")
    private Integer confirmStatus;

    @ApiModelProperty("0-评价时间")
    private LocalDateTime commentTime;

}